package com.scs.application.modules.dept.mapper;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.scs.application.core.mapper.IBaseMapper;
import com.scs.application.modules.dept.entity.OprtUseItem;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  Mapper 接口
 * </p>
 */
public interface OprtUseItemMapper extends IBaseMapper<OprtUseItem> {
    //所有可合单的病人消耗单明细，流程状态end，未在合单明细出现过的
    List<OprtUseItem> notMergeList(@Param(Constants.WRAPPER) QueryWrapper<OprtUseItem> wrapper);

    /**
     * @Description：  更新明细入账专用
     */
    void updateBatchByIdForBill(@Param("itemList") List<OprtUseItem> oprtUseItemListUpdate);

    /**
     * 冲红列表
     * @param page
     * @param wrapper
     * @param params
     * @return
     */
    IPage<OprtUseItem> pageForRedList(IPage page, @Param(Constants.WRAPPER) QueryWrapper wrapper, @Param("params") Map<String, Object> params);
    /**
     * 冲红列表
     * @param page
     * @param wrapper
     * @param params
     * @return
     */
    List<OprtUseItem> listForRedList(@Param(Constants.WRAPPER) QueryWrapper wrapper);


    /**
     * 根据科室Id和SN获取冲红信息
     * @param deptId
     * @param uniqueCodes
     * @return
     */
    List<OprtUseItem> getRedItemsBySn(@Param("deptId") String deptId, @Param("uniqueCodes") List<String> uniqueCodes);

    /**
     * 根据SN获取消耗记录
     * @param sn
     * @param oprtCode
     * @return
     */
    List<OprtUseItem> getUseItemBySn(@Param("sn") String sn, @Param("oprtCode") String oprtCode);
    /**
     * 根据SN获取未审核的冲红消耗记录
     * @param sn
     * @return
     */
    List<OprtUseItem> getUseItemRedNotEnd(@Param("sn") String sn);

}
